package com.suncaper.han_yi_system.pojo.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.Builder;

import java.time.LocalDateTime;

/**
 * 角色实体类
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("role")
public class Role {

    /**
     * 角色id
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /**
     * 角色名称（如：管理员、教师、学生）
     */
    private String roleName;

    /**
     * 角色编码（用于权限控制，如：ROLE_ADMIN, ROLE_TEACHER）
     */
    private String roleCode;

    /**
     * 角色描述
     */
    private String description;

    /**
     * 逻辑删除 (0:未删除, 1:已删除)
     */
    @TableLogic
    private Byte isDeleted;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
}